﻿
#region Using Directives

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Linq;

#endregion

namespace MarketPulse.BusinessLogic.Common.StateMachine
{
    internal interface IEnquiryState
    {

        /// <summary>
        /// Method used to accept the enquiry as valid
        /// </summary>
        bool Accept(IEnquiryStateContext context, bool tryTransition);

        /// <summary>Property to allow read-only access to the database defined Guid for the current visit state</summary>
        Guid StateGuid { get; }

        /// <summary>
        /// Property to set and get a flag to indicate if an exception should be thrown when
        /// an invalid transition is attempted.
        /// </summary>
        bool ThrowIfInvalid { get; set; }

    }
}
